C#.NStar Pre-Pre-I-2o
Привет, неизвестный путник! Здесь вы можете
просмотреть информацию о C#.NStar Pre-Pre-I-2o. Вы можете скачать
EXE или просмотреть список изменений, скриншоты и/или видео.
Что уже проверено и работает в
дополнение к версии (Pre-Pre-Alpha) 0.09@DT:
1. Работающая в большинстве случаев подсветка кода.
2. "Сырые" строки теперь оканчиваются символами "\, вместо "/, для того, чтобы содержимое строки
могло оканчиваться прямым слэшем. Также они теперь могут содержать все три типа комментариев, а в них,
а также в verbatim-строках внутри "сырых" строк - непарные символы начала и конца "сырых" строк.
Это важно потому, что "сырые" строки - это в первую очередь строки с кодом, а код содержит комментарии,
в которых может находиться потенциально что угодно, в том числе комбинации /" или "\.
3. Автодополнение, пока что слабо похожее на автодополнение из Visual Studio.
4. Интерактивная консоль. Удобно запускать из ярлыка, в котором прописан путь к файлу CSharp.NStar.Desktop.exe,
за которым следует команда "repl". Откроется консольное окно, в котором содержатся нижеследующие инструкции.
К сожалению, произвольные символы Юникода в нем не работают, даже не вся кириллица (хотя "ё" работает).
5. Возможность открывать и сохранять файлы с кодом.
6. Добавлена информация о копирайтах.
Что уже проверено и не работает в дополнение к версии (Pre-Pre-Alpha) 0.09:
1. Пока пусто...
Рабочие примеры кода на C#.NStar:
list(3)
int a = (((1, 2, 3), (4, 5, 6), (7, 8, 9)), ((10, 11, 12), (13, 14,
15), (16, 17, 18)), ((19, 20, 21), (22, 23, 24), (25, 26, 27)));
return a[1, 2, 3];
Class
MyClass
{
int
a = 5;
real
b = 3.14159;
string
c = "A";
Constructor(bool
bool)
{
if (bool)
{
a = 12;
}
}
}
MyClass
a1 = new MyClass();
MyClass
a2 = new MyClass(8, 2.71828, "$");
MyClass
a3 = new MyClass(8, 2.71828);
MyClass
a4 = new MyClass(true);
return
(a1, a2, a3, a4);
real
a = 0;
loop
{
if
!(a >= 10)
a++;
else
if !(a >= 12)
{
a += 0.25;
continue;
}
else
if !(a > null)
continue;
else
{
break;
}
}
return
a;
real
Function F(real x, real y)
{
return
x * x + x * y + y * y;
}
System.Func[real,
real, real] f;
f =
F;
real
a = f(3.14159, 2.71828);
f =
Max;
real
b = f(3.14159, 2.71828);
return
(a, b);
Namespace MyNamespace
{
Namespace MyNamespace
{
Class MyClass
{
int a = 5;
real b = 3.14159;
string c = "A";
Constructor(bool bool)
{
if (bool)
a
= 12;
}
}
}
}
MyNamespace.MyNamespace.MyClass a1 = new MyNamespace.MyNamespace.MyClass();
MyNamespace.MyNamespace.MyClass a2 = new MyNamespace.MyNamespace.MyClass(8, 2.71828, "$");
MyNamespace.MyNamespace.MyClass a3 = new MyNamespace.MyNamespace.MyClass(8, 2.71828);
MyNamespace.MyNamespace.MyClass a4 = new MyNamespace.MyNamespace.MyClass(true);
return (a1, a2, a3, a4);
(int, int)[2] Function F()
{
Class MyClass
{
int a = 0;
}
MyClass b = new MyClass(5);
return ((b.a, new MyClass(8).a), (b.a, new MyClass(8).a));
}
return F();
return ExecuteString("return args[1];", Q());
System.Func[int] Function F()
{
int Function F2()
{
return 100;
}
return F2;
}
return F()();
Все остальное
не проверено и, скорее всего, не
работает.
Ссылка на EXE
(~40 MB)
Назад
ко всем версиям